package main

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

func main() {
	r := gin.Default()
	r.GET("/user", func(context *gin.Context) {
		context.JSON(http.StatusOK, gin.H{
			"msg": "Get",
		})
	})
	r.POST("/user", func(context *gin.Context) {
		context.JSON(http.StatusOK, gin.H{
			"msg": "Post",
		})
	})
	r.PUT("/user", func(context *gin.Context) {
		context.JSON(http.StatusOK, gin.H{
			"msg": "Put",
		})
	})
	r.DELETE("/user", func(context *gin.Context) {
		context.JSON(http.StatusOK, gin.H{
			"msg": "Delete",
		})
	})

	r.Any("/book", func(context *gin.Context) {
		switch context.Request.Method {
		case http.MethodGet:
			{
				context.JSON(http.StatusOK, gin.H{
					"msg": "Get",
				})
			}
		case http.MethodPost:
			{
				context.JSON(http.StatusOK, gin.H{
					"msg": "Post",
				})
			}
		case http.MethodPut:
			{
				context.JSON(http.StatusOK, gin.H{
					"msg": "Put",
				})
			}
		case http.MethodDelete:
			{
				context.JSON(http.StatusOK, gin.H{
					"msg": "Delete",
				})
			}

		}
	})

	r.NoRoute(func(context *gin.Context) {
		context.JSON(http.StatusNotFound, gin.H{
			"msg": "找不到页面",
		})
	})

	musicGroup := r.Group("/music")
	{
		musicGroup.GET("/index", func(context *gin.Context) {
			context.JSON(http.StatusOK, gin.H{
				"msg": "music下的index",
			})
		})
		musicGroup.GET("/my", func(context *gin.Context) {
			context.JSON(http.StatusOK, gin.H{
				"msg": "music下的my",
			})
		})
		newMusicGroup := r.Group("v2")
		{
			newMusicGroup.GET("/index", func(context *gin.Context) {
				context.JSON(http.StatusOK, gin.H{
					"msg": "music/v2/index",
				})
			})
		}

	}
	r.Run(":9000")
}
